import api from '../../../../services/api'

Page({
  data: {
    searchText: '', // 搜索关键词
    stockList: [], // 库存列表
    loading: false, // 加载状态
    selectedIndex: -1 // 选中的索引，从上个页面传入
  },

  onLoad(options) {
    // 获取传入的索引参数
    if (options.index !== undefined) {
      this.setData({
        selectedIndex: parseInt(options.index)
      })
    }
    
    // 页面加载时先获取数据
    this.getStockList()
  },

  /**
   * 搜索输入处理
   */
  onSearchInput(e) {
    this.setData({
      searchText: e.detail.value
    })
    // 输入时就触发搜索
    this.onSearch()
  },

  /**
   * 执行搜索
   */
  onSearch() {
    this.getStockList()
  },

  /**
   * 获取库存列表
   */
  async getStockList() {
    const { searchText } = this.data
    
    this.setData({ loading: true })
    
    try {
      const res = await api.warranty.stockList({
        search: searchText,
        type: 1
      })
      
      if (res.status === 200 && res.data) {
        this.setData({
          stockList: res.data
        })
      } else {
        this.setData({
          stockList: []
        })
        wx.showToast({
          title: res.message || '获取数据失败',
          icon: 'none'
        })
      }
    } catch (error) {
      console.error('获取库存列表失败:', error)
      this.setData({
        stockList: []
      })
      wx.showToast({
        title: '网络错误',
        icon: 'none'
      })
    } finally {
      this.setData({ loading: false })
    }
  },

  /**
   * 选择库存项
   */
  selectStock(e) {
    const { item } = e.currentTarget.dataset
    const { selectedIndex } = this.data
    
    // 获取当前页面已选择的卷芯码列表
    const pages = getCurrentPages()
    const prevPage = pages[pages.length - 2]
    
    if (prevPage && prevPage.data && prevPage.data.productInfoList) {
      // 检查是否已经选择过相同的卷芯码
      const existingIndex = prevPage.data.productInfoList.findIndex((productItem, i) => 
        i !== selectedIndex && productItem.signalId === item.signalId
      );
      
      if (existingIndex !== -1) {
        wx.showModal({
          title: '提示',
          content: `该卷芯码已在第${existingIndex + 1}个产品中使用，不能重复选择`,
          showCancel: false,
          confirmText: '我知道了'
        });
        return;
      }
    }
    
    // 将选中的数据返回给上个页面
    if (prevPage && prevPage.onStockSelected) {
      prevPage.onStockSelected(item, selectedIndex)
    }
    
    // 返回上个页面
    wx.navigateBack()
  }
}) 